SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[LiqControlPagoSalarioFamiliar]

@Agente INT,
@SituacionRevista INT, 
@Desde DATETIME,
@Hasta DATETIME, 
@PagarSioSi CHAR(1) OUTPUT 

 AS

SET @PagarSioSi = 'N'

IF EXISTS(SELECT TOP 1 S.idServicioAgente 
	FROM tb_SubserviciosAgentes SS 
	INNER JOIN tb_ServiciosAgentes S ON S.idServicioAgente = SS.ServicioAgente 
	INNER JOIN tb_Organizaciones O ON O.idOrganizaciones = S.UbicacionOrig 
	WHERE O.EsPrivada = 'N' 
	  AND S.Agente = @Agente
	  AND S.FechaAlta <= @Hasta
	  AND (S.FechaBaja IS NULL OR S.FechaBaja >= @Desde)
	)

	  BEGIN

		IF @SituacionRevista  = 1
  	 	   BEGIN 
			-- Analizo si alguno de los servicios publicos es Titular
			IF EXISTS(SELECT  TOP 1 S.idServicioAgente 
				FROM tb_SubserviciosAgentes SS 
				INNER JOIN tb_ServiciosAgentes S ON S.idServicioAgente = SS.ServicioAgente 
				INNER JOIN tb_Organizaciones O ON O.idOrganizaciones = S.UbicacionOrig 
				WHERE O.EsPrivada = 'N' 
				  AND S.Agente = @Agente
				  AND S.FechaAlta <= @Hasta
				  AND (S.FechaBaja IS NULL OR S.FechaBaja >= @Desde)
				  AND S.SituacionRevista = 1 
				)
	
					BEGIN
						SET @PagarSioSi = 'N'
					END
			   ELSE
				
				SET @PagarSioSi = 'S'
		   END

		IF @SituacionRevista  = 2
  	 	   BEGIN 
			-- Analizo si alguno de los servicios publicos es Titular
			IF EXISTS(SELECT  TOP 1 S.idServicioAgente 
				FROM tb_SubserviciosAgentes SS 
				INNER JOIN tb_ServiciosAgentes S ON S.idServicioAgente = SS.ServicioAgente 
				INNER JOIN tb_Organizaciones O ON O.idOrganizaciones = S.UbicacionOrig 
				WHERE O.EsPrivada = 'N' 
				  AND S.Agente = @Agente
				  AND S.FechaAlta <= @Hasta
				  AND (S.FechaBaja IS NULL OR S.FechaBaja >= @Desde)
				  AND S.SituacionRevista = 1
				)
	
					BEGIN
						SET @PagarSioSi = 'N'
					END
			   ELSE
				
				SET @PagarSioSi = 'S'
		   END


		IF @SituacionRevista  = 3 OR @SituacionRevista  = 4
  	 	   BEGIN 
			-- Analizo si alguno de los servicios publicos es Titular
			IF EXISTS(SELECT  TOP 1 S.idServicioAgente 
				FROM tb_SubserviciosAgentes SS 
				INNER JOIN tb_ServiciosAgentes S ON S.idServicioAgente = SS.ServicioAgente 
				INNER JOIN tb_Organizaciones O ON O.idOrganizaciones = S.UbicacionOrig 
				WHERE O.EsPrivada = 'N' 
				  AND S.Agente = @Agente
				  AND S.FechaAlta <= @Hasta
				  AND (S.FechaBaja IS NULL OR S.FechaBaja >= @Desde)
				  AND S.SituacionRevista IN (1,2)
				)
	
					BEGIN
						SET @PagarSioSi = 'N'
					END
			   ELSE
				
				SET @PagarSioSi = 'S'
		   END

	  END

ELSE
	SET @PagarSioSi = 'S'
GO
